سفارش تبلیغ
صبا ویژن

استفاده از کوتلین در برنامه نویسی اندروید

در این مقاله قصد داریم دلیل استفاده از زبان برنامه نویسی کوتلین در اندروید را برایتان شرح دهیم. جاوا پرکاربردترین زبان برنامه‌نویسی برای اندروید است، اما این بدان معنی نیست که همیشه بهترین گزینه است. جاوا کمی قدیمی شده و احتمال خطا در آن زیاد است. هم‌چنین، این بستر معمولاً دیر بروز شده و این ثابت می‌کند که Kotlin بهترین جایگزین برای آن هست.

زبان برنامه نویسی کوتلین
 

برنامه نویسان OpenJDK در تلاش‌اند تا مشکلات جاوا 8 را برطرف کنند، اما اندروید از تمامی ویژگی‌های جاوا 8 استفاده نمی‌کند. برنامه نویسان هنوز در دنیای جاوای 6 و 7 گیرکرده‌اند و این موضوع قرار نیست در آینده‌ی نزدیک پیشرفتی داشته باشد. این دقیقا جایی است که چرا باید از زبان Kotlin برای برنامه‌نویسی در اندروید استفاده کرد؟ چرا باید از زبان برنامه نویسی Kotlin در اندروید استفاده کرد؟ زبان Kotlin وارد بازی می شود. این زبان Open Source و جدید که بر مبنای JVM یا ماشین مجازی جاوا کار می‌کند، در میان مهندسین برنامه‌نویسی اندروید محبوبیت زیادی پیداکرده است.

زبان‌های دیگری نیز هستند که بر مبنای JVM فعالیت می‌کنند، اما زبان برنامه نویسی کوتلین به شما این امکان را می‌دهد که به‌راحتی با استودیوی اندروید و IDE گوگل برای اندروید کارکنید که تا به حال هیچ زبانی به غیر از جاوا در اختیار کاربران قرار نداده است. حالا زمان آن فرا رسیده تا با یک زبان مدرن، پیچیده و آینده نگر، پروژه های اندرویدی خود را ایجاد کنید.

مشکل جاوا چیست؟

اکثر شما سال هاست از جاوا برای برنامه‌نویسی استفاده کرده اید، پس با آن بخوبی آشنا هستید. گوشه به گوشه آن را می شناسید و می دانید چیز هایی در آن وجود دارد که بزرگان همیشه به شما یاد‌آور می شوند و این ترفند هاجایی نوشته نشده است.

پس وقتی زبان جدیدی وارد بازار می شود، شما کمی به آن مشکوک هستید. خود من هم این مشکل را داشتم. باید بگویم که مدت زیادی است که از جاوا استفاده می‌کنم و یک رابطه عشق و تنفر با آن برقرار کرده ام!

در ابتدای کار، خیلی علاقه ای به جدایی از جاوا نداشتم ولی با آشنایی بیشتر با زبان برنامه نویسی کوتلین، نظرم عوض شد. در ادامه به تعدادی از دلایل آن اشاره می کنم:

جاوا، خیلی قدیمی شده است!

جاوا یکی از پرمصرف ترین زبان ها بود؛ اما امروزه، جاوایی که ما در اندروید استفاده می کنیم هیچ نوع پشتیبانی برای Lambdas, Method references و Streams ندارد. هنوز مجبوریم از API های javax.time در نسخه های 6 و 7 استفاده کنیم. البته با برخی از ابزار ها می توان به این ویژگی ها دست پیدا کرد(مثل Retrolambda, ThreeTenABP)، اما این ابزار ها نیز دردسر های خاص خود را دارند. Android Nougat نیز تلاش زیادی کرده است تا ویژگی‌های جاوای 8 را با کمکJack Compiler پشتیبانی کند اما این ویژگی ها معمولا زمانی کاربرد دارند که هدف شما minSDK نسخه 24 باشد که با توجه به کند بودن بروزرسانی های اندروید، اصلا توصیه نمی شود.

جاوا پر ازخطاست!

یکی دیگر از مشکلات جاوا، روش کار آن با “Null” است که باعث ایجاد خطای معروف NPE یا NullPoniterException شده است. امروزه، NPEها دلیل اصلی خطا و مشکلات نرم افزاری در اندروید هستند. در حقیقت، هیچ برنامه ی اندرویدی وجود ندارد که بدون این خطا باشد(اگر دیدید حتما به ما هم اطلاع بدهید، چون خیلی مشتاقیم بدانیم چطور جلوی این خطا را گرفته اید).

“Nullabiltiy” یک مشکل بزرگ در اندروید است. Null یک روش راحت و مفید برای نشان دادن نبود یک مقدار هست و اندروید از آن در فریم ورک ها و API هایش استفاده می‌کند. جاوا کار با null ها را سخت تر کرده و این یکی از نقاط ضعف این بستر هست.

مشکل سوم این جاست که برنامه نویس ها معمولا توجهی به Inner class ها در جاوا نمی‌کنند که باعث می شود فراخوانی از خارج Class ها بیش از حد شود و برنامه های تولید شده در اندروید با مشکل کمبود حافظه روبرو شوند.

جاوا مجموعه عظیمی از ایراد ها را در خود جای داده است که در این جا به آن ها اشاره ای نمی کنیم. اگرچه از بزگترین مشکل آن نمی توان به همین راحتی گذشت.

تعارفات و کد های زیاد

برنامه نویس ها همیشه به دنبال کد های مرتب و خلاصه اند. کد های کمتر یعنی زمان خواندن کمتر و خطاهای کمتر؛ اما در جاوا، باید برای ساده ترین کارها، کد های فراوانی بنویسید. اگر تا بحال برای اندروید کد نویسی کرده باشید، منظور من را متوجه می شوید.

“تعارفات” و کارهای زیادی برای کار با APIها در جاوا وجود دارد و اندروید به خاطر داشتن مراحل مختلف کاری، مثل دسترسی به پایگاه داده و تراکنش‌های مربوط به Fragmentها، این فرانید را بسیار پیچیده‌تر کرده است.

ساده‌تر کردن این فرایندها شمارا به یک برنامه‌نویس باتجربه و با بازدهی بالا، تبدیل خواهد کرد.

زبان برنامه نویسی کوتلین برای نجات شما آمده!

جاوا تنها زبانی نیست که با آن بتوان برای برنامه‌های اندرویدی کد نوشت. به‌غیراز جاوا، قوی‌ترین اکوسیستم اندرویدی که با ماشین مجازی جاوا MJV به‌خوبی کار می‌کند، Kotlin است. این زبان برنامه‌نویسی Open source توسط JetBrains ابداع گردیده است.

JetBrains یکی از محبوب‌ترین IDEها را بانام IntelliJ IDEA و استودیوی اندروید را ایجاد کرده است که گوگل از آن به‌عنوان بهترین و استانداردترین IDE برای برنامه‌نویسی اندرویدی یاد می‌کند. سختی‌های روزمره برنامه نویسان اندرویدی برای این گروه متخصص آشکارشده بود و به همین دلیل، آن‌ها Kotlin را ارائه کردند تا با این مشکلات مقابله کند. JetBrains از Kotlin در تولید محصولات خود استفاده می‌کند و احتمال این‌که این بستر در آینده رها شود بسیار کم است.

Kotlin با روشی نوین و آینده‌نگر، ویژگی‌هایی مثل Package Manager و Build را حذف کرده است. این دو ویژگی هم‌اکنون توسط Gradle و Maven ارائه می‌شوند. استفاده از این ویژگی‌ها در Kotlin باعث می‌شود تا پروژه‌هایی که توسط Maven و Gradle انجام‌گرفته‌اند، از بین بروند.

یکی دیگر از رویکردهای خوب در Kotlin، قرار نگرفتن فریم ورک Java Collections است. با کمک آن‌ها کار کمی ساده‌تر می‌شد ولی برنامه‌نویس‌ها مایل نبودند که JDKها خللی در کارشان ایجاد کنند.

یکی از مزیت‌های مهم در Kotlin، تصمیم های طراحی برنامه‌نویسی است که باعث می شود برنامه هم خوانی بالاتری با سیستم های مختلف داشته باشد و بتوان براحتی با سایر پروژه های اندرویدی و جاوا، کار کرد. برای مثال؛ Kotlin از Bytecode در نسخه جاوا پشتیبانی می‌کند که نیمی از دستگاه های اندرویدی موجود به آن وابسته اند.

Kotlin %100 در جاوا قابل اجراست!

این اولین موضوعی است که باعث شد من به Kotlin علاقه مند شوم. شما براحتی می توانید کد های Kotlin و جاوا را در یکدیگر اجرا کنید. هر دو دارای Bytecode مشابه هستند و هیچ مشکلی در انتقال کد ها از یکی به دیگری وجود ندارد.

این یعنی شما می توانید براحتی پروژه ی کنونی خود را در kotlin ادامه دهید. برای شروع بهتر است بخش های کوچکی از برنامه‌ی خود را در Kotlin بنویسید تا با ساختار‌های آن آشنا بشوید(که باید گفت خیلی ساده اند).

خود من، برای اولین بار بخش های کوچکی از یک پروژه ی بزرگ، مثلUIها و ساختار های تجاری ساده را با کمک Kotlin نوشتم. از این برنامه، فقط 4 تا 5 درصد در Kotlin نوشته شده و بقیه در جاوا است. هدف بعدی من تبدیل این کدها به Kotlin است. ترکیبی از کدهای جاوا و Kotlin در پروژه ی من مشکلی ایجاد نکرده است و کاربردی بودن این ترکیب واقعا کمک زیادی به من کرده است.

دیگر خبری از NPE ها نیست!

تیم برنامه نویسی من سه سال است که در حال ساخت برنامه های اندریدی است و NPEها همیشه باعث ایجاد اختلال در برنامه ها بوده اند. سرمایه گذاری زیادی صرف برطرف کردن این خطاها شده و بررسی های انجام شده بر روی Null ها باعث شده زمان زیادی برای این کار کسل کننده تلف بشود.

با Kotlin، دیگر نگران NPE ها نیستیم، چون که امنیت Nullها در سیستم تایپی Kotlin در نظر گرفته شده اند. شما براحتی می توانید در زمان کامپایل کد ها متوجهNPE ها شوید و دیگری نیازی به نگرانی از مشکلات نرم افزاری در زمان اجرا نیست.

این موضوع به شکلی عملی شده است؟ به شکل پیش فرض تمامی متغیر ها غیر Null هتسند. اگر شما نیازی به متغیری دارید که Null داشته باشد، باید با قرار دادن؟ این موضوع را تعریف کنید. فرض کنید یک متغیر داریم و مقداری برای آن تعریف می کنیم:

 

 

این بخوبی عمل خواهد کرد. حالا این یکی را امتحان کنید:

 

در این جا، کامپایلر نمی‌تواند پردازش کند و به شما این پیام را خواهد داد “Null can not be a value of a non-null type String”. این پیام به این خاطر نمایش داده شد که به شکل پیش فرض، نوع متغیر غیر Null است. همیشه باید به کامپایلر اعلام کنید که متغیر از نوع Null باشد:

 

حالا به راحتی قابل پردازش است اما هنوز باید برای دسترسی به این متغیر دقت کنید. اگر در کدنویسی شما این نوع از متغیر ها وجود داشته باشند، احتمال NPEها در زمان اجرا به حداقل خواهد رسید.

پشتیبانی از ابزارها و IDE های خوب

با Kotlin، نگران پشتیبانی از ابزارهای مختلف نباشید چون که یک شرکت معتبر پشت آن قرار گرفته است. JetBrains تخصص زیادی در زمینه IDEها در اینترنت دارد.

 

در استودیوی اندروید، تنها کاری که باید انجام شود نصب کردن این افزونه است:

https://plugins.jetbrains.com

به همین سادگی. افزونه‌ی Eclipse نیز براحتی در دسترس است، البته نیازی به آن حس نمی شود. تمامی ویژگی‌هایIDE در استودیوی اندروید در Kotlin به خوبی کار می‌کنند. می توانید کد های جاوا و Kotlin را راحت ترکیب کنید و پشتیبانی IDE از زبان‌های مبتنی بر JVM تا این حد نمی توانند موفق عمل کنند. ویژگی منحصر بفرد دیگر در Kotlin، تبدیل فایل های جاوا به Kotlin است. براحتی فایل های قدیمی جاوا را به نسخه ی معادل Kotlin تبدیل کنید.

من 99 درصد از فایل های که با جاوا نوشته شده و تبدیل به Kotlin شده اند را با موفقیت راه اندازی و استفاده کرده ام.

کد کمتر، زندگی بهتر

با این برنامه، کد های کم تری نوشته می شود. خط های کم تر کدنویسی به منزله فضای کم تر برای فایل های Kotlin می باشند. با استفاده از افزونه استودیوی اندروید، فایل‌های جاوا را با اندازه های مختلف به Kotlin تبدیل کرده ام و معمولا فایل بدست آمده جای کم تری اشغال می‌کند. زبان برنامه نویسی کوتلین بسیار خوانا تر از جاوا است. این زبان بسیار راحت تر و قابل فهم تراز جاوا است. بخش اعظمی از وقت برنامه نویسان به این شکل برای مصارف بهتر هزینه خواهد شد.

برای مثال، کد زیر برای یک Listener کلیک در جاوا نوشته شده است. همه در برنامه های اندرویدی خود از این حسگر کلی استفاده می‌کند. مشکل این جاست که کد های زیادی برای این کار ساده باید نوشته بشود و تعارفات زیادی در جاوا برای عکس العمل نسبت به این کلیک وجود دارد:

 

حالا این را در نظر بگیرید:

 

زبان برنامه نویسی کوتلین (Kotlin) یک زبان تجاری است

Kotlin تازه واردی در دنیای برنامه‌نویسی است. سال های کمی عمر دارد و شورع آن توسط شرکت JetBrains در سال 2015 اتفاق افتاد. برخلاف سایر برنامه های مبتنی برJVM، این زبان یک پیشینه ی تجاری و تحقیقاتی دارد و آکادمیک نمی‌باشد. نوشتن برنامه های جدید و زبان‌های نوین همیشه وسوسه کننده است ولی شرکت Jetbrains تصمیم گرفت تا با ساخت Kotlin به دنبال زبانی ساده و ملموس برای رفع مشکلات تجاری و برنامه‌نویسی مربوط به آن باشد.

شما هم امتحان کنید

Kotlin زندگی شما را به عنوان یک برنامه نویس اندرویدی بسیار راحت تر خواهد کرد. ابزار های جدید آن به شما توانایی رشد و توسعه زیادی می‌دهد و شش سال تجربه کاری این زبان باعث شده تا جای پایش، در بازار برنامه‌نویسی محکم شود.

 

 

 نتیجه گیری :

 

این زبان را امتحان کنید، Kotlin را از لینک زیر دانلود کرده و از آن در پروژه های بعدی‌تان استفاده کنید. مشتاق هستیم نظرات و تجربیات شما را دراین زمینه بدانیم. پس آن‌ها را با ما در میان بگذارید.

http://plugins.jetbrains.com

 نوش